<html>
	<head>
		<title>Server</title>
		<link rel="stylesheet" type="text/css" href="JSSStyle.css"></link>
	</head>
	<body>
		<h1>Using a JFS Server for Synchronization</h1>
		<h2>Why using a JFS server?</h2>
		<p>Sometimes it is not possible to hook an external file system in
			your local structure. For instance, (1) a Unix/Linux file
			server doesn't provide Samba, or NFS sharing capabilities,
			(2) it is - for some reasons - not possible to share a Windows
			folder, or (3) the access to an external server is protected by a
			firewall or you have limited access to the server capabilities
			in general.</p>
		<p>In all those cases you can use a JFS server to synchronize your
			files. A JFS server provides a simple interface for clients in
			order to get information from a server or to modify an external
			file system.</p>
		<h2>How to use a JFS server?</h2>
		<p>(1) Login to the server you want to synchronize with (e.g., via an
			SSH session or Windows Terminal Client).</p>
		<p>(2) Start the JFS server on the server machine: You can do this via
			the command line, using <code>java -jar
			&lt;JFS library&gt; -server [-base &lt;base
			directory&gt;]</code>, e.g., <code>java -jar lib/jfs.jar
			-server</code>. If no base directory is specified, the
			current working directory is used. You can get an overview of
			all server options via the <a href="JFSCmdLineOptions.txt">
			JFS command line help</a>. Alternatively, if you may start the
			server via the JFS graphical user interface <img
				src="icons/Server.gif" alt="JFS"></img>, if you have
			direct access to a graphical input device of the machine that
			should act as a server. In this case, you can easily specify all
			server options as part of your <a href="JFSProfile.html">
			synchronization profile</a>.</p>
		<p>(3) Start the JFS application on your local host. If you want to
			access the JFS server as target and/or source directory, you
			have to modify the corresponding entry in the list of directory
			pairs in the following way: <code>ext://&lt;host
			name&gt;/&lt;directory relative to JFS server's
			base&gt;</code>, e.g.,
			<code>ext://localhost/documents</code>. That is, if a
			source or target starts with <code>ext://</code> it is
			assumed that it has to be accessed via an external JFS server.
			You can modify the source or target of a directory pair to comply
			the above syntax by double-clicking on an already existing
			entry of your synchronization profile manager.</p>
		<p>(4) Compare and synchronize as usual. During comparison and
			synchronization, the server should display status
			information about the currently performed actions.</p>
		<h2>What about security issues?</h2>
		<p>The access to a JFS server is protected by a pass phrase. You may
			specify one for your server with the
			<code>-passphrase</code> option on the command line. The
			default pass phrase is <code>JFS</code>. If you don't specify
			your individual pass phrase any JFS client that is able to
			connect to the specified server port may connect to your server
			and modify your file system. Therefore, it is highly
			recommended to change the pass phrase before using a JFS
			server.</p>
		<p>The data transmission is not encrypted. If you want to encrypt
			the connection to you local computer you should use an SSH
			tunnel and forward the JFS server port, which is set to
			<code>55200</code> by default.</p>
		<p>If you specify an individual pass phrase, you also have to set the
			pass phrase on your client profile. You can do this via the JFS
			server settings dialog in the profile manager.</p>
		<h2>Some Hints</h2>
		<p>You can change the used port of a JFS server using the
			<code>-port</code> option. The default port is set to
			<code>55200</code>. If you want to access a JFS server on a
			different port you can enter the used port in the name of a source
			or target directory as follows: <code>ext://&lt;host
			name&gt;:&lt;port&gt;/&lt;directory relative to JFS
			server's base&gt;</code>, e.g.,
			<code>ext://localhost:56000/documents</code>.</p>
		<p>You may store all server settings into your profile. This
			includes the used port, the pass phrase, and the server's base
			directory. After that you simply specify the profile at server
			startup time: <code>java -jar &lt;JFS library&gt; -server
			-config &lt;your profile&gt;</code>, e.g., <code>java -jar
			lib/jfs.jar -server -config
			profiles/Synchronize.xml</code>.</p>
		<p>If the application doesn't behave as expected, have a look at the
			client's log information and the server's status output. If
			you find many socket timeouts there, you may try to increase the
			used socket timeout via the command line or the profile
			management dialog.</p>
	</body>
</html>